অ্যাপাচি HTTP ক্লায়েন্ট (Apache HTTP Client) ব্যবহার করে Query Parameters সংযোজন করা একটি সাধারণ কাজ, বিশেষ করে যখন API-তে GET অনুরোধ পাঠানো হয়। Query parameters URL-এর অংশ হিসেবে থাকে এবং সার্ভারে নির্দিষ্ট ডেটা বা ফিল্টারিং সংক্রান্ত অনুরোধ পাঠানোর জন্য ব্যবহৃত হয়।
যেমন, একটি URL-এর মধ্যে ?key1=value1&key2=value2
এইরকম শর্তে প্রেরিত তথ্য সার্ভারে পৌঁছায়।
Apache HTTP Client-এ HttpGet এর সাথে Query Parameters যুক্ত করতে URL তৈরির সময় এই পদ্ধতি ব্যবহার করা হয়।
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.net.URI;
import java.net.http.URIBuilder;
public class ApacheHttpClientWithQueryParams {
public static void main(String[] args) {
// HttpClient তৈরি করুন
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
// URIBuilder ব্যবহার করে URL এবং Query Parameters তৈরি করা
URI uri = new URIBuilder("https://jsonplaceholder.typicode.com/posts")
.addParameter("userId", "1")
.addParameter("id", "2")
.build();
// HttpGet তৈরি করুন
HttpGet httpGet = new HttpGet(uri);
System.out.println("Executing request: " + httpGet.getRequestLine());
// অনুরোধ পাঠিয়ে প্রতিক্রিয়া সংগ্রহ করুন
CloseableHttpResponse response = httpClient.execute(httpGet);
try {
// প্রতিক্রিয়া থেকে স্ট্যাটাস কোড পান
int statusCode = response.getStatusLine().getStatusCode();
System.out.println("Response Status Code: " + statusCode);
// HttpEntity পান এবং ডেটা পড়ুন
HttpEntity entity = response.getEntity();
if (entity != null) {
// কনটেন্ট স্ট্রিং আকারে পড়ুন
String responseBody = EntityUtils.toString(entity);
System.out.println("Response Content: " + responseBody);
}
} finally {
// প্রতিক্রিয়া বন্ধ করুন
response.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// HttpClient বন্ধ করুন
httpClient.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
}
Query Parameters তৈরি করা
URI uri = new URIBuilder("https://jsonplaceholder.typicode.com/posts")
.addParameter("userId", "1")
.addParameter("id", "2")
.build();
URIBuilder
ব্যবহার করে URL এর সাথে Query Parameters যুক্ত করা হয়েছে। এখানে userId=1
এবং id=2
দুটি প্যারামিটার যুক্ত করা হয়েছে।HttpGet তৈরি করা
HttpGet httpGet = new HttpGet(uri);
HttpGet
অবজেক্টে তৈরি করা URL (যার মধ্যে Query Parameters অন্তর্ভুক্ত) পাস করা হয়েছে।HttpResponse
) গ্রহণ করা হয়েছে।response.getEntity()
ব্যবহার করে HTTP প্রতিক্রিয়া থেকে ডেটা নেওয়া হয়েছে এবং তা EntityUtils.toString(entity)
এর মাধ্যমে স্ট্রিং আকারে রূপান্তরিত করা হয়েছে।?
চিহ্নের মাধ্যমে প্রথম প্যারামিটার শুরু হয় এবং subsequent প্যারামিটার গুলি &
দ্বারা আলাদা হয়।https://example.com/api?key1=value1&key2=value2
key1
হল প্যারামিটারের নাম এবং value1
তার মান।&
, %
, ?
ইত্যাদি URL এ সংযোজনের সময় এনকোড করা প্রয়োজন।URLEncoder.encode()
পদ্ধতি ব্যবহার করে প্যারামিটারগুলির মান নিরাপদে এনকোড করা যেতে পারে।Query Parameters HTTP GET অনুরোধের মাধ্যমে সার্ভারে নির্দিষ্ট ডেটা প্রেরণের জন্য ব্যবহৃত হয়। Apache HTTP Client-এ HttpGet
এবং URIBuilder
ব্যবহার করে সহজেই URL-এ Query Parameters যোগ করা যায়। এই পদ্ধতি API কলের সময় বিভিন্ন ধরনের ফিল্টারিং বা ডেটা অনুসন্ধান কার্যকর করতে সাহায্য করে।